/**
 * Project Name:mixc-pay-api
 * File Name:PayRequestParam.java
 * Package Name:com.crland.mixc.pay.api.dto
 * Date:2016年9月3日下午3:11:14
 * Copyright (c) 2016, crland.com.cn All Rights Reserved.
 */

package com.xf.lastmall.moudle.request;


import com.xf.lastmall.order.api.constant.PayWay;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

/**
 * ClassName:支付请求参数 <br/>
 * Date:     2016年9月3日 下午3:11:14 <br/>
 *
 * @author ZHUANGWEILIANG1
 * @see
 */
@Data
public class PayRequestParam {

    /**
     * 商城编码  (必填)
     */
    private String mallCode;
    /**
     * 平台商户编码  (必填)
     */
    private String merchantCode;
    /**
     * wxaAppId 小程序appId
     * 微信配置目前是一个商户一条配置
     * 因为有些商户有多个小程序，需要知道具体用哪一个wxaAppId传给微信
     * 所以由前端指定
     */
    private String wxaAppId;
    /**
     * 同步通知回调跳转页面  (不必填)
     */
    private String returnUrl;

    /**
     * 异步通知回调地址  (不必填)
     */
    private String notifyUrl;

    /**
     * 订单ID (不必填)
     */
    private String orderId;

    /**
     * 订单编号 (必填)
     */
    private String orderNo;

    /**
     * 支付方式 (必填)
     */
    private PayWay payWay;

    /**
     * 支付金额 (必填)
     */
    private BigDecimal payAmount;

    /**
     * 有效时间(不必填)
     */
    private Date invalidTime;

    /**
     * 请求业务来源(必填)
     */
    private String requestBiz;

    /**
     * 请求来源(默认为app), 因为支付平台的web和app支付参数可能不同，需要先区分是web还是app
     */
    private String requestFrom;

    private String userId;
    /**
     * 微信openId
     */
    private String openId;
    /**
     * appid
     */
    private String appId;

    /**
     * 支付所需的其它公用的特殊参数(key-value形式设置)
     * 【如微信支付: 小程序,网页,APP支付 公用的参数】
     */
    private Map<String, String> extCommonParam;

    /**
     * 订单时间(必填)
     */
    private Date txnTime;

    private String mobile;
    private String channel;
    private String eventId;

}
